Data transfer for network interaction fraudulence detection

ABSTRACT

Transferring metadata is disclosed. Information about a network interaction is processed to generate metadata describing the network interaction. Based on the metadata it is determined whether the metadata is to be transferred to an aggregator. In the event that the metadata is to be transferred, one or more aggregators are determined to which the metadata is to be transferred. The metadata is transferred to the one or more aggregators.

CROSS REFERENCE TO OTHER APPLICATIONS

This application is a continuation of co-pending U.S. patent application Ser. No. 11/986,312, entitled DATA TRANSFER FOR NETWORK INTERACTION FRAUDULENCE DETECTION filed Nov. 19, 2007, which is incorporated herein by reference for all purposes, which claims priority to U.S. Provisional Application No. 61/190,066 entitled DATA TRANSFER FOR NETWORK INTERACTION FRAUDULENCE DETECTION filed Mar. 22, 2007, which application is incorporated herein by reference for all purposes.

BACKGROUND OF THE INVENTION

Network interaction fraudulence detection is typically performed by logging information from a plurality of locations and processing all the logged information from the plurality of locations at a processing location. Detection is improved by having logged information from a number of locations because information can be aggregated across all the locations. However, as the number of locations increases, the processing location must process an increasing amount of logged information. This will act as a bottleneck in the processing of logged information and ultimately impede scaling detection systems. It would be beneficial to be able to aggregate across locations without having a bottleneck in the processing for fraudulence so that detection systems can scale.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.

FIG. 1 is a block diagram illustrating an embodiment of a system for network interaction fraudulence detection.

FIG. 2A is a block diagram illustrating an embodiment of tiered aggregation for network interactions.

FIG. 2B is a block diagram illustrating an embodiment of tiered aggregation of network interactions.

FIG. 3 is a block diagram illustrating an embodiment of a peer system monitoring network interactions.

FIG. 4 is a block diagram illustrating an embodiment of a peer.

FIG. 5 is a block diagram illustrating an embodiment of an aggregator.

FIG. 6 is a flow diagram illustrating an embodiment of a process for data transfer for network interaction fraudulence detection.

FIG. 7A is a flow diagram illustrating an embodiment of a process for processing information about a network interaction.

FIG. 7B is a flow diagram illustrating an embodiment of a process for processing information about a network interaction.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or communication links. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. A component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. In general, the order of the steps of disclosed processes may be altered within the scope of the invention.

A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.

Data transfer for network interaction fraudulence detection is disclosed. Network interaction fraudulence detection becomes more accurate as more information regarding network interactions (e.g., clicks) is analyzed. In particular, correlations of aggregated network interaction information and the outcomes of each network interaction can be used to assess fraudulence or legitimacy of a given network interaction. Although more information is usually better, scaling the handling of more and more information is problematic. Effective and efficient use of network interaction information requires determination of what information to aggregate and where and how to aggregate it.

In some embodiments, determining the information or metadata to share regarding a given network interaction includes determining a confidence level or certainty level based on a model or combination of models which process information regarding a plurality of network interactions. Metadata can then be shared in the event that a confidence level is below a threshold, a certainty level is above a threshold and the processing indicates that the given network interaction is bad, a certainty level is above a threshold and the processing indicates that the given network interaction is good, a certainty is very low, a red alert is issued, a very bad site is identified, a random sampling is shared and/or any other appropriate manner of determining whether to share information.

A model inputs information from a layer about the given network interaction and determines that, for example, it is 70% certain that the IP address is an address that is the source of fraudulent network interaction activity. For example, the model may determine this certainty by using factors such as layer 3 network interaction information that shows that the source internet protocol (IP) address has been involved with spam and is not available for tracing. The model takes in factors and using a weighted total of the factors determines a certainty. In another example, the model determines this certainty by using factors such as layer 7 network information that shows that a session user visits 4 different sites where the user never converted, clicked on different products but where the spacing of the clicks has exactly the same timing (i.e., indicating an automatic pattern of access). The model takes in factors and has predetermined values associated with conditions. The maximum value of any of these conditions is then used to determine a certainty.

In various embodiments, an aggregator comprises a centralized location in order to be able to broadcast it to all or some other locations, a local aggregator, a regional aggregator, a country aggregator, one or more layer or tier aggregators, an organizational aggregator, a segment aggregator, and/or among one or more peers. In some cases, sharing may need to follow a set of rules, contractual obligations, may need to be filtered, be based on network topology, system network architecture, and/or any other appropriate sharing criteria.

The data or information about a network interaction to share can include just an IP address and a time stamp or include one or more of the following: an IP address, a time stamp, assessment of whether the IP address is a source of fraudulent network interactions, referrer information, metadata indicating confidence, measured information such as interclick time, processed information such as model parameters, interclick distributions, click statistics, HTTP data, TCP data, machine fingerprint data, and/or user fingerprint data. In some embodiments, information is determined by protocol—for example, all network interaction information regarding fraudulent sources is sent to a particular port or IP address whereas all legitimate sources are sent to a different port or IP address. In some cases, business rules or logic determine the information to share—for example, if a keyword is involved in the network interaction and the keyword has a value associated with it (e.g., a dollar amount), then a predetermined list of information is shared with a predetermined set of aggregators. In some cases, information to be shared is derived automatically as determined by monitoring a network interaction or as gleaned by probing the network based on information determined from monitoring. In some cases, information to be shared is derived manually. For example, model and data about network interactions are shared except when the network interaction involves a particular site (e.g., a military site or governmental site).

In some embodiments, rule-based determinations regarding what information to share and who to share it with may have conflicting determinations. In these cases, a conflict resolving set of rules or prioritization methodology for the rule, or a manual intervention (e.g., manual determination of which rule is to “win”) of configuration file input may be required.

FIG. 1 is a block diagram illustrating an embodiment of a system for network interaction fraudulence detection. In the example shown, peer 114, which measures or analyzes a single location's network interactions, is able to communicate with network 100. Peer 114 comprises a computer system or server that receives or measures network interactions and is able to analyze (e.g., perform statistical measures of network interactions, actively probe information regarding the network interaction, model, parameterize, compress, etc.) and communicate (e.g., exchange information with a remote analytical system, a remote aggregator of network interactions, a remote storage repository, etc.) regarding the measured network interactions. Network 100 enables communication to one or more aggregators of the network interaction information including local aggregator 102, organizational aggregator 104, segment aggregator 106, centralized aggregator 108, country aggregator 110, and/or regional aggregator 112.

Local aggregator 102 receives and analyzes network interactions in a locality. In various embodiments, a locality comprises a local network or systems attached to the local network, where the local network is associated with one of the following: a company, a physical plant, a building, a neighborhood, an area, a wireless hub, a wired hub, a router or switch, or any other constraint for a network or systems attached to a network.

Organizational aggregator 104 receives and analyzes network interactions of an organization. In various embodiments, an organization comprises a computer network or systems attached to the computer network, where the organization comprises one or more of the following: a company including one or more locations that can be geographically disparate, a government, a union, a non-profit organization, a university, an association, a partnership, or any other group of member entities where the member entities are associated with each other.

Segment aggregator 106 receives and analyzes network interactions of a segment. In various embodiments, a segment comprises a computer network or system attached to the computer network, where the segment comprises a group of companies, governmental departments, and/or other organizations/entities associated with a type of activity. For example, a group of advertisers, three advertising networks, a set of computer companies, a dozen telephone companies located in different countries, stock brokerages, insurance companies, etc.

Centralized aggregator 108 receives and analyzes network interactions from appliances monitoring network interactions. Appliances or analyzing systems or servers can be associated with local, organizational, segment, country, or regional aggregators as well as only centralized aggregator 108. In some embodiments, there are several tiers/layers/levels of aggregation.

Country aggregator 110 and regional aggregator 112 are geographically organized aggregators. In some cases, network interactions may aggregate at a local level; a plurality of local aggregators 102 are aggregated at a regional level; a plurality of regional aggregators 112 are aggregated at a country level; and a plurality of country aggregators 110 are aggregated at a centralized level.

In various embodiments, network 100 comprises one or more of the following: the Internet, the world wide web, a local area network, a wide area network, a wired network, a fiber network, a wireless network, or any other appropriate network enabling communication between systems analyzing, monitoring, and/or storing with network interactions.

In various embodiments, only one of the type of aggregators, a subset of the types of aggregators, all of the types of aggregators, or more than displayed types of aggregators included in FIG. 1 aggregate network interactions.

FIG. 2A is a block diagram illustrating an embodiment of tiered aggregation for network interactions. In the example shown, network interactions from peer 1, peer 2, and peer 3 are aggregated by local 1 aggregator. Network interactions from peer A, peer B, and peer C are aggregated by local 2 aggregator. Network interactions from local 1 aggregator and local 2 aggregator are aggregated by region M aggregator. Network interactions from region 1 aggregator through region M aggregator are aggregated by country 1 aggregator. M region aggregators are represented in FIG. 2A by region 1 aggregator and region M aggregator. Network interactions from country 1 aggregator through country N aggregator are aggregated by centralized aggregator. N country aggregators are represented in FIG. 2A by country 1 aggregator and country N aggregator.

FIG. 2B is a block diagram illustrating an embodiment of tiered aggregation of network interactions. In the example shown, layer tier server aggregates network interactions from local tier peer 1, local tier peer 2, local tier peer 3, and local tier peer 4. Local tier network interactions are also aggregated or shared by the peers in the local tier. So, each local tier peer receives network interaction information from other local tier peers—for example, local tier peer 1 receives network interaction information from local tier peer 2, local tier peer 3, and local tier peer 4.

Information about network interactions including processed data, model data, and model parameters is processed by peers and/or aggregators including filtering, prioritizing, ranking, discarding, or any other appropriate processing in order to be useful in determining network interaction fraudulence. In some cases, the transferring of information about network interactions may not be successful—for example, if connections and/or hardware resources are busy or unavailable. Transfers may need to be resent after a period of time or different periods of time depending on how many retries have been attempted (e.g., anti-entropy back off methods to enable graceful scaling of sharing). sharing for aggregation may require transferring information

FIG. 3 is a block diagram illustrating an embodiment of a peer system monitoring network interactions. In some embodiments, peer 308 of FIG. 3 is the same as peer 114 of FIG. 1 and/or peers in FIGS. 2A and 2B. In the example shown, a user using computer 312 can access a web page on server 306 via network 300. In various embodiments, server 306 is associated with an advertising network or an advertiser. In various embodiments, network 300 comprises one or more of the following: the Internet, the world wide web, a local area network, a wide area network, a wired network, a wireless network, or any other appropriate network. Server 306 can be accessed from network 300 via firewall 302 and local area network (LAN) 304. Peer 308 is able to monitor traffic to and from server 306 and is connected to LAN 304. In various embodiments, monitoring comprises detecting in hardware the network traffic or the network interactions to be monitored, detecting in real-time network traffic, capturing data in real-time, analyzing data in real-time, triggering real-time queries or forensics of IP addresses/network topology/routing tables/preferred paths, detecting layer 3 through layer 7 data from the monitored traffic, monitoring Ethernet traffic, or any other appropriate monitoring of network traffic. Peer 308 is able to store information on storage device 310. In some embodiments, peer 308 monitors traffic to and from server 306 by being between server 306 and LAN 304 by receiving and forwarding all traffic between network 300 and server 306. In this situation, all traffic is received and forwarded without substantially affecting network traffic, without substantially affecting a transaction involving the network traffic, and/or with less than 2 milliseconds of delay for the process of receiving and forwarding.

In some embodiments, peers can also be used to monitor traffic at other points in the network other than in front of or just beside a server—for example, on a trunk line, an internet service provider network, an advertising network, or any other appropriate traffic site.

In some embodiments, peer 308 is able to communicate with a server that analyzes aggregated network interaction information and/or provides model data based on network interaction data provided by peer 308. Models are used by peer 308 to calculate a preliminary score in real-time or quasi-real-time for detected network interactions. A preliminary score can be based on information associated with detected network interaction(s) as well as on stored parameters or models received from a model server or an analytics server.

FIG. 4 is a block diagram illustrating an embodiment of a peer. In some embodiments, peer 400 of FIG. 4 the same as peer 308 of FIG. 3, Peer 114 of FIG. 1 and/or peers in FIGS. 2A and 2B. In the example shown, peer 400 includes monitor 402, analyzer 404, and database 406. Monitor 402 receives information regarding network interactions and/or network traffic and sends information to analyzer 404. Monitor 402 monitors information in real-time and Analyzer 404 can provide real-time or quasi-real-time assessment of information gathered by monitor 402. In some embodiments, monitor 402 receives information in real-time from peer hardware that is detecting the network traffic to be monitored. Analyzer 404 analyzes network interactions and/or network traffic by examining TCP/IP or hypertext transfer protocol/secure hypertext transfer protocol (HTTP/HTTPS) layer information and uses that to make a preliminary scoring of the network interaction. Analyzer 404 can perform internet protocol (IP) forensics including probing the internet or world wide web to discover information about web sites and/or web routers or other networking components. Analyzer 404 can also send network interaction information and/or model information or model parameter information to one or more other peers and/or to one or more aggregators.

Preliminary scoring is based on models generated by analyzer 404 and/or received from a model server and/or an analytic server, and on other previously acquired network interaction information that is stored locally. Some models are specific in terms of scoring a network interaction—for example, a specific IP address is designated as scoring high because it was recently involved in a successful financial transaction or as scoring low because it was recently involved in sending significant amounts of spam and phishing email. Some models are generic in terms of scoring a network interaction—for example, an IP address that cannot be located with a probe immediately after being received in a click is designated as scoring low because it is likely fraudulent. Local peer stored history can indicate that a large number of network interactions are coming from one particular IP address in a short period of time; Analyzer 404 can indicate that under these circumstances that these network interactions are designated with a low preliminary score. Models used in preliminary scoring of monitored network interactions can be updated locally by updating model parameters using local peer network interaction data, updated from remote model and/or analytic servers either with new models or new model parameters, or any other appropriate manner of updating models for preliminary scoring.

Preliminary scoring or other analysis preformed by analyzer 404 can be real-time or in batch mode after a period of time. In some embodiments, monitoring and/or detection of a network interaction is done in real-time by peer hardware. Extraction and capture of relevant network interaction information (e.g., layer 3 through layer 7 information) for analysis is performed in real-time. In some embodiments, preliminary scoring is provided to a user in real-time or quasi-real-time.

In various embodiments, the network interaction comprises a click, a cookie, or any other appropriate network interaction. Analyzer 404 is able to probe in real time the IP routing and perform forensics. Analyzer 404 can store network interaction and/or network traffic information in database 206. Analyzer 204can send network interaction reports to a model server and also can receive from a model server fraud model digests. An analytic server can calculate a final score for the network interaction based on information received at the analytic server. In some embodiments, the final score is sent to a report server or a reporter on an aggregator, from which a customer can access summarized legitimate and fraudulent network interactions. In some embodiments, analysis and model generation is performed on peer machines such as peer 400 within analyzer 404 instead of a separate analysis server.

FIG. 5 is a block diagram illustrating an embodiment of an aggregator. In some embodiments, aggregator 500 of FIG. 5 is used to implement aggregators of FIGS. 1 and/or 2A and/or layer tier server of FIG. 2B. In the example shown, aggregator 500 includes modeler 502, analyzer 504, database 506, and reporter 508. Aggregator 500 communicates with other aggregators and/or one or more peers and aggregates network interactions. Aggregator receives network interaction information and uses the information to analyze network interactions in analyzer 504 and model network interactions in modeler 502. In various embodiments, a receiver of network information may accept, prioritize, rank, refuse, or any other appropriate processing or filtering as may be appropriate. Modeler 502 can develop models and parameter values for the models of network interactions which can be used to analyze network interactions. In some embodiments, models and parameter values are manually input into modeler 502 using a configuration file or another input method such as a interactive user interface. In some embodiments, models are not automatically developed in modeler 502. Analyzer 504 can analyze network interactions that have been aggregated from one or more monitoring peers over a period of time. In various embodiments, analysis of network interactions includes statistical analysis; analysis using models generated and parameterized by model 502; network topology/route analysis (e.g., analyzing if there are common sites or routes being used for network interactions); timing analysis (e.g., analysis of network interaction events from a site or a user at a site); calculating a confidence level, a certainty level, a red alert, model parameters, interclick times, interclick distributions, statistics regarding clicks, composite measure of clicks; or any other appropriate analysis. Database 506 is used to store relevant network interaction information, analysis information, and model information. Reporter 508 is able to create reports regarding network interactions, analysis, and/or models based on network interaction information, model information, and analysis information including information stored in database 506.

FIG. 6 is a flow diagram illustrating an embodiment of a process for data transfer for network interaction fraudulence detection. In some embodiments, the process of FIG. 6 is executed on a peer such as peer 114 of FIG. 1, peer or local tier peer of FIGS. 2A and 2B, peer 308 of FIG. 3, and/or peer 400 of FIG. 4. In the example shown, in 600 information is processed about a network interaction to calculate a data. In 602, it is determined if the data is to be transferred. If the data is not to be transferred, the process ends. If the data is to be transferred, then in 604, receiver(s) is/are determined to which the data is to be transferred. In 606, data is transferred to the receiver(s).

In some embodiments, information about a network interaction comprises HTTP data, TCP data, machine fingerprint data, or user fingerprint data.

HTTP data includes date, time, client IP address, user name, method, uniform resource identifier (URI) stem, URI query, protocol status, bytes sent, user agent, referrer, and/or cookie.

TCP data includes TCP packet info such as source port, destination port, sequence number, acknowledgement number, data offset, control flags, window, checksum, urgent pointer, options, padding, and/or data.

Machine fingerprinting data includes all information that javascript has access to including machine hardware characteristics, browser settings, browser environment (bookmarks, history), and browser customization (plugins that have been registered), and/or timing information between the client and other machines.

In some embodiments, machine fingerprinting data includes language and locale information such as browserLanguage, systemLanguage, User Language, defaultCharset, Locale Observes daylight savings time (DST), Currently DST, Standard Timezone Offset, Locale Date Format.

In some embodiments, machine fingerprinting data includes machine property information such as operating system and/or central processing unit class (oscpu/cpuClass), screen x dots per inch (XDPI), screen y dots per inch (YDPI), screen fontSmoothingEnabled, screen updateInterval, platform, Screen Width, Screen Height, and/or Processing Time msec.

In some embodiments, machine fingerprint data includes session information such as domain and/or start time in msec.

In some embodiments, machine fingerprint data includes browser property information such as appCodeName, appName, appVersion, productSub/appMinorVersion, userAgent, cookieEnabled, and/or online,

In some embodiments, machine fingerprint data includes component version information such as internet explorer™ (IE), IE javascript™ (JS) Major Version, IE JS Minor Version, IE JS Build Version, Outlook Express™ Address Book Version, Windows™ Desktop Update, DirectAnimation™, DirectAnimation Java™ Classes, DirectShow™ activemovie, Dynamic HTML Data Binding Tridata, DirectAnimation Java Classes DAJava™, Internet Connection Wizard, Internet Explorer 6, Java(Sun™) JAVAVM™, Internet Explorer Help, HTML Help, Microsoft™ Windows Media Player, NetMeeting™, Offline Browsing Pack, Microsoft Outlook Express 6 MailNews™, Task Scheduler, and/or Java(Sun) JAVAVM.

In some embodiments, machine fingerprinting data includes FireFox™ information such as Acrobat™, Flash™, QuickTime™, Java Plug-in, Director™, and/or Office™.

User fingerprint data includes capturing all user keystrokes and mouse movements between HTTP page requests including timing of the keystrokes and mouse movements at millisecond resolution.

FIG. 7A is a flow diagram illustrating an embodiment of a process for processing information about a network interaction. In some embodiments, the process of FIG. 7A is used to implement 600 of FIG. 6. In the example shown, in 700 information is received about a network interaction. In 702, the information is processed using model(s) to calculate a confidence or certainty level.

FIG. 7B is a flow diagram illustrating an embodiment of a process for processing information about a network interaction. In some embodiments, the process of FIG. 7B is used to implement 600 of FIG. 6. In the example shown, in 700 information is received about a network interaction. In 702, the information is processed using model(s) to calculate a red alert.

Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive. 

What is claimed is:
 1. A system for transferring metadata, comprising: a processor; and a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to: process information about a network interaction to generate metadata describing the network interaction wherein the metadata comprises an IP address, a timestamp, and at least one of: an assessment of whether the IP address is a source of fraudulent network interactions, referrer information, metadata indicating confidence, interclick time, model parameters, interclick distributions, click statistics machine fingerprint data, HTTP data, TCP data, or user fingerprint data; determine based on at least part of the metadata that the metadata is to be transferred to an aggregator; determine one or more aggregators to which the metadata is to be transferred; and transfer the metadata to the one or more aggregators.
 2. A system as in claim 1, wherein the network interaction is a click.
 3. A system as in claim 1, wherein the information about the network interaction includes one or more of the following: an IP address, a time stamp, a network route, or a referring IP address.
 4. A system as in claim 1, wherein the metadata is one or more of the following: a statistic, a distribution, an interclick time, a composite measure of clicks, a model, a model parameter, HTTP data, TCP data, machine fingerprint data, or user fingerprint data.
 5. A system as in claim 1, wherein determining whether the metadata is to be transferred includes determining whether a confidence level is below a threshold.
 6. A system as in claim 5, wherein the confidence level is based on one or more models.
 7. A system as in claim 6, wherein the one or more models use the information about the network interaction as input information.
 8. A system as in claim 1, wherein determining whether the metadata is to be transferred includes determining whether a certainty level is below a threshold.
 9. A system as in claim 8, wherein the certainty level is based on one or more models.
 10. A system as in claim 9, wherein the one or more models use the information about the network interaction as input information.
 11. A system as in claim 1, wherein determining whether the metadata is to be transferred includes determining whether the metadata indicates a red alert situation.
 12. A system as in claim 11, wherein the red alert situation is based on one or more models.
 13. A system as in claim 12, wherein the one or more models use the information about the network interaction as input information.
 14. A system as in claim 1, wherein determining whether the metadata is to be transferred includes determining a sampling of the metadata.
 15. A system as in claim 1, wherein the one or more aggregators includes one or more of the following: a centralized aggregator, a country aggregator, a regional aggregator, a local aggregator, an organizational aggregator, a peer, an edge appliance, a model server, an analytics server, a local tier peer, a layer tier server, or a segment aggregator.
 16. A system as in claim 1, wherein transferring the metadata includes encrypting the metadata before sending the metadata to the one or more aggregators.
 17. A system as in claim 1, wherein transferring the metadata includes decrypting the metadata after receiving the metadata at one of the one or more aggregator.
 18. A method for transferring metadata, comprising: processing information about a network interaction to generate metadata describing a network interaction, wherein the metadata comprises an IP address, a timestamp, and at least one of: an assessment of whether the IP address is a source of fraudulent network interactions, referrer information, metadata indicating confidence, interclick time, model parameters, interclick distributions, click statistics machine fingerprint data, HTTP data, TCP data, or user fingerprint data; determining based on at least part of the metadata that the metadata is to be transferred to an aggregator; determining one or more aggregators to which the metadata is to be transferred; and transferring the metadata to the one or more aggregators.
 19. A computer program product for transferring metadata, the computer program product being embodied in a non-transitory computer readable medium and comprising computer instructions for: processing information about a network interaction to generate metadata describing the network interaction, wherein the metadata comprises an IP address, a timestamp, and at least one of: an assessment of whether the IP address is a source of fraudulent network interactions, referrer information, metadata indicating confidence, interclick time, model parameters, interclick distributions, click statistics machine fingerprint data, HTTP data, TCP data, or user fingerprint data; determining based on at least part of the metadata that the metadata is to be transferred to an aggregator; determining one or more aggregators to which the metadata is to be transferred; and transferring the metadata to the one or more aggregators. 